package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbProjectEngineeringDo;
import com.yxx.business.entity.TbProjectEngineeringVo;
import com.yxx.business.entity.TbProjectEngineeringQueryDto;
import com.yxx.business.entity.TbProjectEngineeringEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 项目-工程关联Service接口
 *
 * @author yxx
 * @date 2025-08-03
 */
public interface ITbProjectEngineeringService extends IServicePlus<TbProjectEngineeringDo> {

    /**
     * 查询项目-工程关联分页结果
     *
     * @param tbProjectEngineeringQueryDto 项目-工程关联查询实体
     * @return 项目-工程关联分页
     */
    public PageResult<TbProjectEngineeringVo> selectTbProjectEngineeringVoPage(TbProjectEngineeringQueryDto tbProjectEngineeringQueryDto);

    /**
     * 查询项目-工程关联Vo列表
     *
     * @param tbProjectEngineeringQueryDto 项目-工程关联查询实体
     * @return 项目-工程关联集合
     */
    public List<TbProjectEngineeringVo> selectTbProjectEngineeringVoList(TbProjectEngineeringQueryDto tbProjectEngineeringQueryDto);

    /**
     * 查询项目-工程关联Do列表
     *
     * @param tbProjectEngineeringQueryDto 项目-工程关联查询实体
     * @return 项目-工程关联集合
     */
    public List<TbProjectEngineeringDo> selectTbProjectEngineeringDoList(TbProjectEngineeringQueryDto tbProjectEngineeringQueryDto);

    /**
     * 查询单个项目-工程关联
     *
     * @param id 项目-工程关联主键
     * @return 项目-工程关联单个
     */
    public TbProjectEngineeringVo selectTbProjectEngineeringVoById(Long id);

    /**
     * 新增项目-工程关联
     *
     * @param tbProjectEngineeringQueryDto 项目-工程关联编辑实体
     * @return 结果
     */
    public int insertTbProjectEngineering(TbProjectEngineeringEditDto tbProjectEngineeringQueryDto);

    /**
     * 修改项目-工程关联
     *
     * @param id 主键
     * @param tbProjectEngineeringQueryDto 项目-工程关联编辑实体
     * @return 结果
     */
    public int updateTbProjectEngineering(Long id, TbProjectEngineeringEditDto tbProjectEngineeringQueryDto);

    /**
     * 批量删除项目-工程关联
     *
     * @param ids 项目-工程关联主键集合
     * @return 结果
     */
    public int deleteTbProjectEngineeringByIds(List<Long> ids);

    /**
     * 删除单个项目-工程关联信息
     *
     * @param id 项目-工程关联主键
     * @return 结果
     */
    public int deleteTbProjectEngineeringById(Long id);
}
